/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BeansGerenciaveis;

import DAO.AutorDao;
import DAO.ConexaoPostgres;
import DAO.SignificadoDao;
import DAO.VerbeteDao;
import bean.Autor;
import bean.Significado;
import bean.Verbete;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;

/**
 *
 * @author fernando
 */
@ManagedBean
@SessionScoped
public class VerbeteConsultaBean implements Serializable {

    private Verbete verbete;
    private VerbeteDao verbeteDao;
    private ConexaoPostgres conexao;
    private SignificadoDao significadoDao;
    private ArrayList listaVerbetesCorrelacionados;
    private Verbete verbeteSelecionado;
    private List<Verbete> resultadoPesquisa;
    private List<Verbete> resultadoPesquisaVerbetePorAutor;
    private String consultaVerbete;
    private Significado significadoSelecionado;
    private int idAutorPesquisa;
    private List<Autor> listaAutores;
    /**
     * Creates a new instance of VerbeteConsultaBean
     */
    public VerbeteConsultaBean() {
        this.verbete = new Verbete();
        this.verbeteDao = new VerbeteDao();
        this.conexao = new ConexaoPostgres();
        this.significadoDao = new SignificadoDao();
        this.listaVerbetesCorrelacionados = new ArrayList();
        this.verbeteSelecionado = new Verbete();
        this.significadoSelecionado = new Significado();
    }

    public String consultarVerbeteTitulo() {
        String resultado = "";
        verbeteDao = new VerbeteDao();
        resultadoPesquisa = null;
        System.out.println(consultaVerbete);

        resultadoPesquisa = verbeteDao.consultarVerbetes(consultaVerbete);
        if (resultadoPesquisa != null) {
            resultado = "/eixo_inovacao/resultado_pesquisa_verbetes.xhtml?faces-redirect=true";
        }



        return resultado;

    }
    

    public String consultarVerbeteTitulo(int opcao) {
        switch (opcao) {

            case 1: {
                System.out.println("Entrei no case a");
                consultaVerbete = "a";
            }

            break;

            case 2:
                consultaVerbete = "b";

                break;

            case 3:

                consultaVerbete = "c";

                break;

            case 4:

                consultaVerbete = "d";

                break;

            case 5:

                consultaVerbete = "e";

                break;

            case 6:

                consultaVerbete = "f";

                break;

            case 7:

                consultaVerbete = "g";

                break;

            case 8:

                consultaVerbete = "h";

                break;

            case 9:

                consultaVerbete = "i";

                break;

            case 10:

                consultaVerbete = "j";

                break;

            case 11:

                consultaVerbete = "k";

                break;

            case 12:

                consultaVerbete = "l";

                break;

            case 13:

                consultaVerbete = "m";

                break;

            case 14:

                consultaVerbete = "n";

                break;
            case 15:

                consultaVerbete = "o";

                break;
            case 16:

                consultaVerbete = "p";

                break;
            case 17:

                consultaVerbete = "q";

                break;
            case 18:

                consultaVerbete = "r";

                break;
            case 19:

                consultaVerbete = "s";

                break;
            case 20:

                consultaVerbete = "t";

                break;
            case 21:

                consultaVerbete = "u";

                break;
            case 22:

                consultaVerbete = "v";

                break;

            case 23:

                consultaVerbete = "w";

                break;
            case 24:

                consultaVerbete = "x";

                break;
            case 25:

                consultaVerbete = "y";

                break;
            case 26:

                consultaVerbete = "z";

                break;

            case 27:

                consultaVerbete = "";

                break;




        }
        String resultado = "";
        verbeteDao = new VerbeteDao();
        resultadoPesquisa = null;
        System.out.println(consultaVerbete);

        resultadoPesquisa = verbeteDao.consultarVerbetes(consultaVerbete);
        if (resultadoPesquisa != null) {
            resultado = "/eixo_inovacao/resultado_pesquisa_verbetes.xhtml?faces-redirect=true";
        }



        return resultado;

    }
    
    public String consultarVerbetePorAutor(){
        String resultado = "";
        resultadoPesquisa = verbeteDao.consultarVerbetesAutor(idAutorPesquisa);
        
        if (resultadoPesquisa != null) {
            resultado = "/eixo_inovacao/resultado_pesquisa_verbetes.xhtml?faces-redirect=true";
        }
        return resultado;
        
    }

    public String consultarVerbeteAutor() {
        String resultado = "";


        if (resultadoPesquisaVerbetePorAutor != null) {
            resultado = "/eixo_inovacao/visualizar_verbetes_autor.xhtml?faces-redirect=true";
        } else {
            resultadoPesquisaVerbetePorAutor = verbeteDao.consultarVerbetes("");
            resultado = "/eixo_inovacao/visualizar_verbetes_autor.xhtml?faces-redirect=true";
        }

        return resultado;

    }
    
   
    public void carregarVerbetes() {
        System.out.println("Verbete Bean - CarregarVerbetes - Fui Executado ");
        verbeteDao = new VerbeteDao();
        resultadoPesquisaVerbetePorAutor = this.verbeteDao.listarVerbetes();
        
        
    }

    public Verbete getVerbete() {
        return verbete;
    }

    public void setVerbete(Verbete verbete) {
        this.verbete = verbete;
    }

    public VerbeteDao getVerbeteDao() {
        return verbeteDao;
    }

    public void setVerbeteDao(VerbeteDao verbeteDao) {
        this.verbeteDao = verbeteDao;
    }

    public ConexaoPostgres getConexao() {
        return conexao;
    }

    public void setConexao(ConexaoPostgres conexao) {
        this.conexao = conexao;
    }

    public SignificadoDao getSignificadoDao() {
        return significadoDao;
    }

    public void setSignificadoDao(SignificadoDao significadoDao) {
        this.significadoDao = significadoDao;
    }

    public ArrayList getListaVerbetesCorrelacionados() {
        return listaVerbetesCorrelacionados;
    }

    public void setListaVerbetesCorrelacionados(ArrayList listaVerbetesCorrelacionados) {
        this.listaVerbetesCorrelacionados = listaVerbetesCorrelacionados;
    }

    public Verbete getVerbeteSelecionado() {
        return verbeteSelecionado;
    }

    public void setVerbeteSelecionado(Verbete verbeteSelecionado) {
        this.verbeteSelecionado = verbeteSelecionado;
    }

    public List<Verbete> getResultadoPesquisa() {
        return resultadoPesquisa;
    }

    public void setResultadoPesquisa(List<Verbete> resultadoPesquisa) {
        this.resultadoPesquisa = resultadoPesquisa;
    }

    public List<Verbete> getResultadoPesquisaVerbetePorAutor() {
        
        return resultadoPesquisaVerbetePorAutor;
    }

    public void setResultadoPesquisaVerbetePorAutor(List<Verbete> resultadoPesquisaVerbetePorAutor) {
        this.resultadoPesquisaVerbetePorAutor = resultadoPesquisaVerbetePorAutor;
    }

    public String getConsultaVerbete() {
        return consultaVerbete;
    }

    public void setConsultaVerbete(String consultaVerbete) {
        this.consultaVerbete = consultaVerbete;
    }

    public Significado getSignificadoSelecionado() {
        return significadoSelecionado;
    }

    public void setSignificadoSelecionado(Significado significadoSelecionado) {
        this.significadoSelecionado = significadoSelecionado;
        this.verbeteSelecionado = new VerbeteDao().buscarVerbetePorSignificao(significadoSelecionado);
        ArrayList<Significado> s = new ArrayList<Significado>();
        s.add(significadoSelecionado);
        this.verbeteSelecionado.setSignificados(s);
    }

    public int getIdAutorPesquisa() {
        
        return idAutorPesquisa;
    }

    public void setIdAutorPesquisa(int idAutorPesquisa) {
        this.idAutorPesquisa = idAutorPesquisa;
    }

    public List<Autor> getListaAutores() {
        if(listaAutores==null){
            listaAutores = new AutorDao().listarAutoresComVerbetes();
        }
        return listaAutores;
    }

    public void setListaAutores(List<Autor> listaAutores) {
        this.listaAutores = listaAutores;
    }
    
    
    
    
    
}
